package com.hsnn.medstgmini.base.std.dao;

import java.util.List;
import java.util.Map;

import com.hsnn.medstgmini.base.dict.model.DicCompType;
import com.hsnn.medstgmini.base.std.model.StdCompinfo;
import com.hsnn.medstgmini.base.std.model.StdCompinfoLog;
import com.hsnn.medstgmini.util.Pagination;

/**
 * 企业库 接口DAO
 * @author hssdzxssh
 *
 */
public interface StdCompinfoDao {
	public DicCompType getDicCompRegId(String compRegid);
	/**
	 * 企业库 新增及修改
	 * 
	 * @param stdCompinfo
	 */
	void addAndEdit(StdCompinfo stdCompinfo);

	/**
	 * 企业库 信息查询及条件查询
	 * @param stdCompinfo
	 * @return
	 */
	Pagination queryStdCompinfoList( Pagination page,StdCompinfo stdCompinfo);

	/**
	 * 企业库 停用
	 * @param stdCompinfo
	 */
	/*Pagination Drop(String compId,Pagination page,StdCompinfo stdCompinfo);*/
	
	/**
	 * 企业库 启用
	 * @param stdCompinfo
	 */
	/*Pagination Start(String compId,Pagination page,StdCompinfo stdCompinfo);*/
	
	/**
	 * 企业库 批量停用
	 * @param stdCompinfo
	 */
	/*boolean batchDrop(StdCompinfo stdCompinfo);*/
	
	/**
	 * 企业库批量启用
	 * @param stdCompinfo
	 */
	/*boolean batchStart(StdCompinfo stdCompinfo);*/
	int batchStarts(StdCompinfo stdCompinfo);
	void writeLog(StdCompinfo stdCompinfo);
	void addForm(StdCompinfo stdCompinfo);
	/**
	 * 企业库 根据id查询数据
	 * @param Id
	 * @return
	 */
	List<StdCompinfo> queryStdCompinfoById(String Id);
	
	StdCompinfo getCompInfoByCode(String compCode);
	
	/**
	 * @category 根据企业id 查询企业详情
	 * @author 韩守松
	 * @date   2015年8月21日
	 * @param  @param compId
	 * @param  @return
	 */
	StdCompinfo queryStdCompInfoByCompId(String compId);
	
	/**
	 * @category 根据企业compCode 查询企业详情
	 * @author 韩守松
	 * @date   2015年8月21日
	 * @param  @param compCode
	 * @param  @return
	 */
	StdCompinfo queryStdCompInfoByCompCode(String compCode);
	
	/**
	 * 企业库 根据单个属性数据查询企业列表
	 * @param Id
	 * @return
	 */
	/*List<StdCompinfo> queryStdCompinfoByProperty(String propertyName, Object value);*/
	
	/**
	 * 企业库 维护记录查询所有及条件查询
	 * 
	 * @param stdCompinfoLog
	 * @return
	 */
	List<StdCompinfoLog> queryStdCompinfoLogByName(
			Pagination page,StdCompinfoLog stdCompinfoLog);
	
	
	/**
	 * 企业库 信息详情对比数据
	 * @param page
	 * @param stdCompinfoLog
	 * @return
	 */
	List<Map<String,Object>> queryStdCompinfoLogById(Pagination page,StdCompinfoLog stdCompinfoLog);
	
	
	/**
	 * 企业库 根据企业id 及状态 查询企业数据
	 * @param page
	 * @param stdCompinfo
	 * @return
	 */
	Pagination queryStdCompinfoById(Pagination page,StdCompinfo stdCompinfo);
	
	/**
	 * 企业库 根据企业id查询状态为1的数据
	 * @param Id
	 * @return
	 */
	List<StdCompinfo> queryStdCompinfoByIdForMerge(String Id);
	Pagination getStdCompinfoNoPage(Pagination page);

	
	/**
	 * 企业库 信息查询及条件查询不分页
	 * @param stdCompinfo
	 * @return
	 */
	Pagination queryStdCompCount( Pagination page);
	public List<Map<String, Object>> getCompByName(String compName);
	
	/**
	 * @category 根据企业名称或简拼搜索企业
	 * @date 2015年11月19日
	 * @param compName
	 * @return
	 */
	Pagination searchCompByName(Pagination page);
	public Map<String, Object> getCompinfoByCode(String compCode);
	public Pagination getCompList(Pagination page);
	
	/**
	 * @category 根据企业类型获取此类型下的企业数据
	 * @author 韩守松
	 * @date   2016年1月13日
	 * @param  @param compType
	 * @param  @return
	 */
	public Pagination getCompData(Integer compType,Pagination page);
}
